1. Field of the Invention
This invention is related to the field of provisioning computer systems to execute a set of software resources.
2. Description of the Related Art
Software provisioning of computer systems is becoming more pervasive as businesses attempt to more fully utilize the computer power they have at their disposal. As the workload being performed by a set of computer systems changes, it may be desirable to shift workload of various types from one computer system to another, to increase or decrease the number of computer systems handling a given type of workload, etc. Different workloads may require different software resources (e.g. operating systems, applications, etc.), and thus the configuration of the computer systems may need to be changed. Providing a computer system with a set of software resources is referred to as provisioning the computer system.
Software provisioning generally involves copying an image of the software resources from an image repository system to the target computer system, typically across a network of some sort. Provisioning a computer system frequently takes a relatively long period of time (e.g. 20 minutes or more, depending on the size of the image, the speed of the network, etc.). The amount of time required to provision a computer system may impact how efficiently computer systems can be redeployed to handle other workloads. For example, the OpForce™ product currently available from VERITAS Software Corporation (Mountain View, Calif.) may do the following to provision a computer system (OpForce executes on the image repository system): The target computer system sends out a Pre Execution Environment (PXE) boot request (during boot of the target computer system). OpForce receives the PXE boot request, and transmits a lightweight Linux operating system (the “Active OS”) to the target computer system. The target computer system boots into the Active OS, which mounts the image repository system containing the image to be provisioned (e.g. a network file system (NFS) or common internet file system (CIFS) mount). The Active OS executes a make filesystem command on the target computer system, and copies all files from the image on the image repository system to the local disk in the target computer system The Active OS “personalizes” the local files (hostname, IP address, etc). The Active OS then reboots the target computer system. The target computer system again sends out a PXE boot request, which OpForce ignores. The target computer system times out on the PXE boot request and boots from the local disk.
In some cases, provisioning may be accomplished by having multiple bootable images in a storage area network (SAN) or Network Attached Storage (NAS), and directing a target computer system to boot from the desired image. Small Computer Systems Interface over Internet Protocol (iSCSI) disks could be used in a similar fashion. While some high-end server systems may be capable of such booting, many computer systems (e.g. personal computer (PC) systems based on Intel or AMD processors) typically are not designed to boot in this fashion. If a large amount of local storage is included in a target computer system, multiple bootable images may be stored in the local storage, and the desired image may be selected for booting (e.g. so called “multiple bootable partitions”).
Another function which may take a relatively long period of time is snapshotting a system image from a computer system into the image repository. For example, the current OpForce product may perform the following to snapshot an image into the image repository system: OpForce communicates with an OpForce agent running on the target computer system, requesting a reboot of the target computer system. The target sends out a PXE boot request during the reboot. OpForce detects the PXE boot request, and pushes the Active OS to the target computer system in response. The target computer system boots the Active OS, which mounts the image repository system. Active OS copies the changed files to the image repository system. Determining which files have changed requires communication back and forth between the target computer system and the image repository system (e.g. comparing time stamps of corresponding blocks on the target computer system and the image repository system).
During both provisioning and snapshotting, the target computer system may be unavailable to perform other work.